//l  l    l    l     h     g djsi   e     l  s ds  l   o   l 
#include<iostream>
#include<algorithm>
#include<stack>
using namespace std;
int st[27];
int main()
{
	stack<char> mp;
	char ch;string s1;
	while (cin >> ch)
	{
		mp.push(ch);
	}
	while (!mp.empty())
	{
		char ch = mp.top();mp.pop();
		if (ch == 'o' && st['o' - 'a'] == 0)
		{
			st['o' - 'a']++;
			s1 += 'o';
		}
		else if (ch == 'l' && st['o' - 'a'] == 1 && st['l' - 'a'] <= 1)
		{
			st['l' - 'a']++;
			s1 += 'l';
		}
		else if (ch == 'e' && st['o' - 'a'] == 1 && st['l' - 'a'] == 2 && st['e' - 'a'] == 0)
		{
			st['e' - 'a']++;
			s1 += 'e';
		}
		else if (ch == 'h' && st['o' - 'a'] == 1 && st['l' - 'a'] == 2 && st['e' - 'a'] == 1 && st['h' - 'a'] == 0)
		{
			st['h' - 'a']++;
			s1 += 'h';
		}
	}
	reverse(s1.begin(), s1.end());
	
	if (s1 == "hello") cout << "YES";
	else cout << "NO";
	return 0;
}